﻿using System;
using System.Windows.Forms;

namespace 住院医生工作站
{
    public partial class frm_LogIn : Form
    {

        /// <summary>
        /// 私有字段：用户；
        /// </summary>
        private User User;

        /// <summary>
        /// 公有方法：构造函数；
        /// </summary>
        public frm_LogIn()
        {
            InitializeComponent();
            this.StartPosition = FormStartPosition.CenterScreen;                                    //本窗体启动位置设为屏幕中央；
            this.btn_ModifyPassword.Enabled = false;                                               //本窗体的修改密码按钮暂不可用；
            this.User = new User();                                                                 //实例化用户，并赋予本窗体的相应成员；
        }

        /// <summary>
        /// 私有方法：点击登录按钮；
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btn_Login_Click(object sender, EventArgs e)
        {
            this.User.UserName = this.txb_UserName.Text.Trim();                                             //将文本框的文本清除首尾的空格后，赋予用户的相应属性；
            this.User.Password = this.txb_Password.Text.Trim();                                    
            UserBll.LogIn(this.User);                                                               //调用业务逻辑层的静态方法，对用户执行登录操作；
            MessageBox.Show(this.User.Message);                                                     //在消息框中显示登录消息；
            if (this.User.HasLoggedIn)                                                              //若用户完成登录，即登录成功；
            {
                this.btn_ModifyPassword.Enabled = true;                                             //本窗体的修改密码按钮可用；                            
            }
            else                                                                                    //否则（即登录失败）；
            {
                this.txb_Password.Focus();                                                          //密码文本框获得焦点；此时将触发事件，并再次执行验证用户号的方法，从而将用户的消息覆盖为验证用户号的结果，故需事先在消息框中显示登录消息；
                this.txb_Password.SelectAll();                                                      //密码文本框内所有文本被选中；
                this.btn_ModifyPassword.Enabled = false;                                            //本窗体的修改密码按钮不可用；
            }
        }

        /// <summary>
        /// 私有方法：点击注册按钮；
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btn_SignUp_Click(object sender, EventArgs e)
        {
            frm_SignUp signUpForm = new frm_SignUp();                                               //声明并实例化注册窗体；
            signUpForm.ShowDialog(this);                                                            //注册窗体以对话框方式打开；                                         
        }

        /// <summary>
        /// 私有方法：点击修改密码按钮；
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btn_ModifyPassword_Click(object sender, EventArgs e)
        {
            frm_UserCenter userCenterForm = new frm_UserCenter(this.User);                          //声明并实例化用户中心窗体；
            userCenterForm.ShowDialog(this);                                                        //用户中心窗体以对话框方式打开；  
        }
    }
}
